<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>clip-save-restore</title>
</head>

<body>
    <canvas id="canvas" width="500px" height="300px" style="border: 3px solid blue;"></canvas>

    <script>
        var canvas = document.getElementById("canvas"); // 获取画布
        var context = canvas.getContext('2d'); // 准备画笔
        context.rect(50, 20, 200, 120); // 绘制矩形
        context.stroke(); // 描边
        context.fillStyle = 'green';
        context.arc(150, 80, 60, 0, 2 * Math.PI, true) // 绘制圆形区域
        context.clip(); // 在画布中剪切一个矩形区域
        context.save(); // 快照
        // context.fillStyle = 'red';
        context.fill();
        context.restore();
    </script>
</body>

</html>